草庐IT

c++ - DrawText VS TextOut Win32

全部标签

c - 临时冒充和启用特权?

我们维护一个DLL,做很多与系统相关的事情;遍历文件系统、注册表等。此DLL的调用者可能使用也可能不使用模拟。为了更好地支持所有可能的场景,我正在尝试将其修改为更智能。我将使用删除文件的示例。目前我们只调用DeleteFile(),如果失败,那就结束了。我想出了以下内容:BOOLTryReallyHardToDeleteFile(LPCTSTRlpFileName){//1.callerwithoutprivilegeBOOLbSuccess=DeleteFile(lpFileName);DWORDdwError=GetLastError();if(!bSuccess&&dwError

.net - 使用 Win32 API 写入应用程序事件信息

.NET提供了EventLog类,能够将应用程序事件信息写入系统上的特定日志。是否有类似的Win32API可以用C++调用? 最佳答案 是的。它记录在MSDN的事件日志记录部分。http://msdn.microsoft.com/en-us/library/aa363652%28VS.85%29.aspx 关于.net-使用Win32API写入应用程序事件信息,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

windows - 如何从 NTFS/FAT32 中的逻辑簇号查找有关文件的信息?

我正在尝试通过Windows碎片整理API(http://msdn.microsoft.com/en-us/library/aa363911(VS.85).aspx)对单个文件进行碎片整理,但如果没有足够大的可用空间block来容纳我的文件,我想移动文件的其他部分为其腾出空间。链接的文章提到了移动其他文件的部分,但我找不到有关如何找出要移动哪些文件的任何信息。从可用空间位图中,我可以找到一个几乎足够大的空间,并且我知道它周围的逻辑簇号,但是从这里我无法找出它周围有哪些文件,并且需要文件句柄来执行FSCTL_MOVE_FILE移动部分文件。有没有什么办法,通过API或者解析MFT,找出逻

windows - Win32同步

我正在尝试编写一个应用程序(基于控制台),其中一个线程从控制台读取信息,另一个线程将相同的信息打印回控制台。我卡在实现同步逻辑上了。谁能给我一些sample。约翰 最佳答案 如果你指的是C++,你可以在这里找到示例:UsingCriticalSectionObjects 关于windows-Win32同步,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2718344/

windows - *A Win32 API 调用是否仍然相关?

我仍然看到有关使用LPTSTR/TCHAR类型等的建议,而不是LPWSTR/WCHAR。我相信Unicode的东西在Win2k中得到了很好的介绍,坦率地说,我不再为Windows98编写代码了。(当然,特殊情况除外。)考虑到我不关心Windows98(或者更不用说ME),因为它们是十年前的操作系统,是否有任何理由使用兼容性TCHAR等类型?为什么仍然建议人们使用TCHAR-它比直接使用WCHAR有什么好处? 最佳答案 如果有人告诉您要遍历1,000,000行非_UNICODEC++,其中大量声明使用char而不是wchar_t或TC

c - 如何最好地处理 Windows 的 16 位 wchar_t 丑陋?

我正在编写一个与mingw一起使用的包装层,它为应用程序提供了一个虚拟的UTF-8环境。处理文件名的函数是从UTF-8转换并调用相应的“_w”函数等的包装器。我遇到的最大问题是Windows的wchar_t是16位的。对于文件系统操作,这没什么大不了的。我可以在UTF-8和UTF-16之间来回转换,一切正常。但是标准的C多字节/宽字符转换API不允许多wchar_t字符。可能的解决方案:提供CESU-8环境而不是UTF-8。我真的不喜欢这个。走捷径,只支持BMP。将长度为4的UTF-8序列视为无效。扩展包装器以将mingw的wchar_t替换为typedefint32_twchar_t

c++ - 打印机驱动程序开发 - 从 32 位到 64 位

我开发了一个为32位系统编译的驱动程序。该驱动程序基于unidriver。有谁知道要使驱动程序与64位兼容需要什么?如果有的话,我需要对代码做哪些更改?还是只需要用64位版本的DDK编译它?提前致谢。努诺 最佳答案 第一步是使用VisualStudio打开项目并添加x64配置。然后,测试并查看它是否构建(可能不会)。最常见的错误(我遇到过)是这些:DWORD->DWORD_PTR+所有相关的具有长版本的Win32api函数指针截断:将在msvc上发出警告,在gcc上发出错误:在适用的情况下将long/int替换为(u)intptr_

c++ - 如何获取PC模型类型?

是否有获取PC型号类型的函数或方法?在我的例子中,这将是“OptiPlex780”。直到现在我从WMI(WIN32_Computersystem)查询它,它在99%的情况下都有效,但有时,它无法检索模型。所以WMI不是我的选择。我正在寻找其他方式。有人有想法吗?谢谢。 最佳答案 根据微软的文档,Model必须始终填写:ModelDatatype:stringAccesstype:Read-onlyProductnamethatamanufacturergivestoacomputer.Thispropertymusthaveaval

在 Windows 上使用 Tiny C Compiler 编译并运行 file.c

我可以逐步了解如何使用TinyC编译器和Windows提示编译我的file.c吗?一些我已经有的问题:将下载的所有TCC文件粘贴到哪里?是否必须编译stdio.h才能使用printf函数?(我想做一个“HelloWorld”)。这是我的file.c的样子://#include//forprintfintmain(void){printf("HelloEric.You'vecompiledandruntheprogram!\n");}谢谢,编辑1到目前为止,我正在运行它并收到错误:未找到包含文件“stdio.h”。 最佳答案 您可以将

python - 在 win32 中读取符号链接(symbolic link)/连接点的目标(通过 Python)

任务及背景:在win32平台中创建、回读、删除指向目录的链接(截至目前)。我的python代码中遵循的方法是按顺序一种。尝试创建真正的符号链接(symboliclink),如果支持(通过mklinkcmd)b.如果不受支持,回退到创建连接点,如果它受支持(通过linkdcmd)阅读和删除遵循相同的方法。问题:符号链接(symboliclink)和juncpt的创建和删除都很简单,但我不知道如何读取目标,即指向目录。进度:一种。对于连接点,我可以使用“linkd”并以丑陋的方式解析标准输出以获取目标目录。b.对于符号链接(symboliclink),似乎没有这样的解决方案。C。我看到py